/**
 * 给N个互不覆盖的圆，求一条直线，平分圆面积。圆心均在第一象限
 * 令直线方程为 y = x * tan(theta)
 * theta在[0, PI/2]，二分即可
 */
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;

using Real = long double;
Real const EPS = 1E-16;
Real const PI = acos(-1.L);

int sgn(Real x){return x > EPS ? 1 : (x < -EPS ? -1 : 0);}
bool is0(Real x){return 0 == sgn(x);}

struct circle_t{
    Real x;
    Real y;
    Real r;
    Real area;
    Real arg;
};

vector<circle_t> Circles;
int N;
Real Total;

Real f(Real jiao){
    Real ans = 0;
    for(const auto & c : Circles){
        auto d = c.x * sin(jiao) - c.y * cos(jiao);
        switch(sgn(d)){
            case -1 : d = -d; break;
            case 0: d = 0;break;
        }
        
        if(sgn(d - c.r) >= 0){
            if(c.arg < jiao){
                ans += c.area;
            }
        }else{
            auto yuanxinjiao = acos(d / c.r) * 2.L;
            auto sanjiaox = 0.5 * c.r * c.r * sin(yuanxinjiao);
            if(jiao < c.arg){
                ans += 0.5 * c.r * c.r * yuanxinjiao - sanjiaox;
            }else{
                ans += 0.5 * (PI + PI - yuanxinjiao) * c.r * c.r + sanjiaox;
            }
        }
    }
    return ans;
}

void work(){
    cin >> N;
    Circles.assign(N, {});
    for(auto & c : Circles){
        cin >> c.x >> c.y >> c.r;
        Total += c.area = PI * c.r * c.r;
        c.arg = atan2(c.y, c.x);
    }

    Real left = 0, right = PI * 0.5, mid;
    for(int i=0;i<1000;++i){
        mid = (left + right) * 0.5;
        auto t = f(mid);
        if(t + t < Total) left = mid;
        else right = mid;
    }

    Real a = tan(left), b = -1, c = 0;
    Real d = sqrt(a * a + b * b);
    a /= d, b /= d;
    cout << fixed << setprecision(23) << a << endl;
    cout << fixed << setprecision(23) << b << endl;
    cout << "0" << endl;
    return;
}

int main() {
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--) work();
    return 0;
}